package cn.lovemmd.model.admin.vo;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 模型视图对象
 * 
 * @author TLS
 * @since 2024-01-01
 */
public class ModelVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 模型ID
     */
    private Long MId;

    /**
     * 模型名称
     */
    private String MName;

    /**
     * 模型职业
     */
    private String MOccupation;

    /**
     * 模型职业中文名称
     */
    private String MOccupationName;

    /**
     * 模型下载链接
     */
    private String MUrl;

    /**
     * 模型图片链接
     */
    private String MImg;

    /**
     * 模型来源
     */
    private String MModelSource;

    /**
     * 骨骼绑定
     */
    private String MBoneBinding;

    /**
     * 物理绑定
     */
    private String MPhysicsBinding;

    /**
     * 表情制作
     */
    private String MExpressionMaking;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    // 无参构造函数
    public ModelVO() {}

    // 全参构造函数
    public ModelVO(Long MId, String MName, String MOccupation, String MOccupationName, String MUrl, String MImg,
                   String MModelSource, String MBoneBinding, String MPhysicsBinding, String MExpressionMaking,
                   LocalDateTime createTime, LocalDateTime updateTime) {
        this.MId = MId;
        this.MName = MName;
        this.MOccupation = MOccupation;
        this.MOccupationName = MOccupationName;
        this.MUrl = MUrl;
        this.MImg = MImg;
        this.MModelSource = MModelSource;
        this.MBoneBinding = MBoneBinding;
        this.MPhysicsBinding = MPhysicsBinding;
        this.MExpressionMaking = MExpressionMaking;
        this.createTime = createTime;
        this.updateTime = updateTime;
    }

    // Getter 和 Setter 方法
    public Long getMId() {
        return MId;
    }

    public void setMId(Long MId) {
        this.MId = MId;
    }

    public String getMName() {
        return MName;
    }

    public void setMName(String MName) {
        this.MName = MName;
    }

    public String getMOccupation() {
        return MOccupation;
    }

    public void setMOccupation(String MOccupation) {
        this.MOccupation = MOccupation;
    }

    public String getMUrl() {
        return MUrl;
    }

    public void setMUrl(String MUrl) {
        this.MUrl = MUrl;
    }

    public String getMImg() {
        return MImg;
    }

    public void setMImg(String MImg) {
        this.MImg = MImg;
    }

    public String getMModelSource() {
        return MModelSource;
    }

    public void setMModelSource(String MModelSource) {
        this.MModelSource = MModelSource;
    }

    public String getMBoneBinding() {
        return MBoneBinding;
    }

    public void setMBoneBinding(String MBoneBinding) {
        this.MBoneBinding = MBoneBinding;
    }

    public String getMPhysicsBinding() {
        return MPhysicsBinding;
    }

    public void setMPhysicsBinding(String MPhysicsBinding) {
        this.MPhysicsBinding = MPhysicsBinding;
    }

    public String getMExpressionMaking() {
        return MExpressionMaking;
    }

    public void setMExpressionMaking(String MExpressionMaking) {
        this.MExpressionMaking = MExpressionMaking;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取职业中文名称
     */
    public String getMOccupationName() {
        if (MOccupation == null) {
            return "";
        }
        switch (MOccupation) {
            case "bladePoint":
                return "刀锋";
            case "Flame":
                return "烈焰";
            case "doubleGun":
                return "双枪";
            case "machineGun":
                return "机枪";
            case "guidedMissile":
                return "导弹";
            case "sniper":
                return "狙击";
            case "medic":
                return "医生";
            case "grenade":
                return "榴弹";
            case "engineer":
                return "工程师";
            default:
                return MOccupation;
        }
    }

    public void setMOccupationName(String MOccupationName) {
        this.MOccupationName = MOccupationName;
    }
}
